using System;
using System.Collections.Generic;
using M0;
using M1;

public class 缓存User :  Base数据缓存<缓存User>, I缓存<缓存User>
{

    public List<货币数量> All货币;
    public int 看广告次数;
    
    public string 名字;
    public string 唯一ID;
    public string 头像;


    public virtual void 加货币(int addValue,string 货币,bool 超出界限)
    {
        int cur = 0;
        int 添加后 = cur;
        int index = All货币.FindIndex(f => f.货币 == 货币);
        if (index >= 0)
        {
            cur = All货币[index].Value;
        }
        else
        {
            All货币.Add(new 货币数量(){货币 = 货币,Value = 0});
            index = All货币.FindIndex(f => f.货币 == 货币);
        }

        if (cur + addValue < 0)
        {
            // 拥有的，需要扣除的，货币种类
            MyEvent.Instance.DoEvent("货币不足",(cur,addValue,货币));
            return;
        }
        else
        {
            添加后 =cur+ addValue;
        }

        if (!超出界限)
        {
            int max = Boot.Instance.Get货币限制(货币);
            添加后 = Math.Min(max, 添加后);
        }

        All货币[index].Value = 添加后;
    }

    public virtual void Init()
    {
        int index = All货币.FindIndex(f => f.货币 == "体力");
        if (index < 0)
        {
            var max = Boot.Instance.Get货币限制("体力");
            if (max > 0)
            {
                All货币.Add( new 货币数量(){货币 = "体力",Value = max}); 
            }
        }
    }

    public 缓存User GetData()
    {
        return instance;
    }
}

[Serializable]
public class 货币数量
{
    public string 货币;
    public int Value;
}
